SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
CREATE PROC [dbo].[SP_TXMVTO_CNTB_Q46]
/*-------------------------------------------------------------------*/                            
/*----- Empresa           : OFISIS S.A.                          ----*/                            
/*----- Cliente           : OFISIS S.A.                          ----*/                            
/*----- Sistema           : Contabilidad                         ----*/                            
/*----- Modulo            : Empresa                              ----*/                            
/*----- Programa          : PDB Ventas                           ----*/                            
/*----- Nombre            : SP_TXMVTO_CNTB_Q46                   ----*/                             
/*----- Script            : TXMVTO_CNTB                          ----*/                            
/*----- Desarrollado por  : pdgv                                 ----*/                            
/*----- Fecha             : 06/09/2006                           ----*/                            
/*----- Base de Datos     : MS SQL Server                        ----*/                            
/*----- Version BD        : 8.0                                  ----*/                            
/*-------------------------------------------------------------------*/                            
/*-------------------------------------------------------------------*/                            
/*----- Drop proc SP_TXMVTO_CNTB_Q46                             ----*/                
/*----- Grant all on SP_TXMVTO_CNTB_Q46 to PUBLIC     ----*/                            
/*-----   
EXEC SP_TXMVTO_CNTB_Q46 '01', 1, 2006, 7,7, 'T', '', '', 'DDD'   
 ----*/                            
/*-------------------------------------------------------------------*/                            
@ISCO_EMPR        TD_VC_002,                            
@INNU_CNTB_EMPR   TD_IN_001_CONT,                            
@INNU_ANNO        TD_IN_004_ANNO,                            
@INNU_MESE_INIC   TD_IN_002_MESE,                            
@INNU_MESE_FINA   TD_IN_002_MESE,                            
@ISFI_0001        TD_VC_001,  
@ISTI_REPO        TD_VC_003,                            
@ISTI_ORDE_REPO   TD_VC_003,                            
@ISTI_REPO_INFO   TD_VC_003                            
                            
As                            
                            
Declare                             
 @VDFE_DOCU     TD_DT_001,                            
 @CSNU_ASTO_BASE    Char(20),  --Char(16),                                
 @VSCO_MONE_BASE    TD_VC_003,                            
 @VSCO_MONE_BAS1    TD_VC_003,                            
 @VSTI_DOCU     TD_VC_003,                            
 @VSNU_DOCU     TD_VC_020,                            
 @VSCO_UNID     TD_VC_003,                            
 @VSCO_OPRC     TD_VC_003,                            
 @CSNU_ASTO     TD_VC_010,                            
 @CSCO_AUXI     TD_VC_020,                            
 @VSNO_CORT_CLIE    TD_VC_050,                            
 @VSNU_RUCS_CLIE    TD_VC_020,                            
 @CSNO_AUXI    TD_VC_050,                            
 @CSNU_RUCS    TD_VC_020,                            
 @VSCO_MONE  TD_VC_003,                            
 @VSCO_OPR1     TD_VC_003,                            
 @VSCO_OPR2     TD_VC_003,                            
 @VSID_VENT      TD_VC_003,                            
 @VSID_IIGV      TD_VC_003,                            
 @VSID_FONA      TD_VC_003,                            
 @VSID_RENT      TD_VC_003,                            
 @VSCO_SUNA        TD_VC_002,                            
 @VSID_EXPO      TD_VC_003,                            
 @VNIM_TOTA_BASX    TD_NU_016_004,                            
 @VNIM_TOTA_BASY    TD_NU_016_004,                            
 @VNIM_INAF_ORIX    TD_NU_016_004,  
 @VNIM_AFEC_ORIX    TD_NU_016_004,                            
 @VNIM_EXPO_ORIX    TD_NU_016_004,                            
 @VNIM_IIGV_ORIX    TD_NU_016_004,                            
 @VNIM_TOTA_ORIX    TD_NU_016_004,                            
 @VNIM_INAF_SOLX    TD_NU_016_004,                            
 @VNIM_AFEC_SOLX    TD_NU_016_004,                        
 @VNIM_EXPO_SOLX    TD_NU_016_004,                            
 @VNIM_IIGV_SOLX    TD_NU_016_004,                            
 @VNIM_TOTA_SOLX    TD_NU_016_004,                            
 @VNFA_CAMB     TD_NU_009_004,                            
 @VNIM_IIGV_ORIG    TD_NU_016_004,                            
 @VNIM_TOTA_ORIG    TD_NU_016_004,                            
 @VNIM_EXPO_ORIG    TD_NU_016_004,                            
 @VNIM_IIGV_CNTB    TD_NU_016_004,                            
 @VNIM_TOTA_CNTB    TD_NU_016_004,                            
 @VNPO_IGV1     TD_NU_009_004,                            
 @VNPO_IGV2     TD_NU_009_004,                            
 @VNPO_REN1     TD_NU_009_004,                            
 @VNPO_REN2     TD_NU_009_004,                            
 @CDFE_DOCU     TD_DT_001,                            
 @CSTI_DOCU_CNTB    TD_VC_003,                            
 @CSNU_DOCU     TD_VC_020,                            
 @CSCO_UNID     TD_VC_003,                            
 @CSCO_OPRC     TD_VC_003,                            
 @VSNU_ASTO     TD_VC_010,                            
 @CSCN_CNTB_EMPR    TD_VC_010,                            
 @CSTI_OPER_CNTB    TD_VC_003,                            
 @CSCO_MONE     TD_VC_003,                            
 @CNFA_CAMB     TD_NU_009_004,                            
 @CNIM_MVTO_ORIG    TD_NU_016_004,                            
 @CNIM_MVTO_CNTB    TD_NU_016_004,                            
 @CSID_CNTA      TD_VC_003,                            
 @CSTI_AUXI_EMPR   TD_VC_001,                            
 @VSNO_DOCU          TD_VC_050,                            
 ----------------------------------------                            
@VSNU_CNTB_EMPR  TD_VC_001,                          
@VSNU_ANNO       TD_VC_004,                            
@VSNU_MESE_INIC  TD_VC_002,                             
@VSNU_MESE_FINA  TD_VC_002,                            
@CNNU_MESE       TD_IN_002_MESE,                            
@CNPO_REN1   TD_NU_009_004,                            
@CNPO_REN2   TD_NU_009_004,                            
@CNPO_IGV1        TD_NU_009_004,                            
@CNPO_IGV2   TD_NU_009_004,                            
@VSCO_AUXI   TD_VC_020,                              
@VNPO_IGV1_ANNO   TD_NU_009_004,                              
@VNPO_IGV2_ANNO   TD_NU_009_004,                            
@VSCO_SUNA_0001   TD_VC_002,                            
@VSCO_SUNA_NOCR   TD_VC_002,                            
@VSNU_DOCU_0001   TD_VC_020,                            
@VDFE_DOCU_0001   TD_DT_001,                 
                
@CDFE_ASTO_CNTB TD_DT_001,                 
@VDFE_ASTO_CNTB TD_DT_001,                 
@CSTI_CAMB TD_VC_003,                 
@VSTI_CAMB_BASE TD_VC_003,                 
@VNIM_TOTA_CONT TD_NU_016_004,            
@VNIM_IIGV_CONT TD_NU_016_004,            
@VNIM_EXPO_CONT TD_NU_016_004,                           
@VNIM_CONT_BASX TD_NU_016_004,                           
@VNIM_CONT_BASY TD_NU_016_004,            
            
@VNIM_AFEC_CONX TD_NU_016_004,            
@VNIM_INAF_CONX TD_NU_016_004,            
@CSST_CNTA_CAMB TD_VC_003,           
@CSCO_SUNA_REFE Varchar(2),       
@CSTI_DOCU_REFE TD_VC_003,           
@CSNU_DOCU_REFE TD_VC_020,       
@VSCO_SUNA_REFE Varchar(2),       
@VSTI_DOCU_REFE TD_VC_003,           
@VSNU_DOCU_REFE TD_VC_020,       
@VSTI_AUXI_EMPR TD_VC_001,  
@VSCO_AUXI_EMPR TD_VC_020,
@CDFE_DOCU_REFE TD_DT_001,
@VDFE_DOCU_REFE TD_DT_001,
@VNIM_VALO_BASE TD_NU_016_004, 
@VNIM_VALO_IIGV TD_NU_016_004,
@VSTI_PERS_SUNA    TD_VC_003,
@CSTI_PERS_SUNA    TD_VC_003,
@VSCO_DOCU_SUNA    TD_VC_003,
@CSCO_DOCU_SUNA    TD_VC_003,
@VSNU_DOCU_SUNA    TD_VC_020,
@CSNU_DOCU_SUNA    TD_VC_020,
@VSCO_MONE_DOLA    TD_VC_003,
@VSCO_MONE_NACI    TD_VC_003,
@VSCO_DEST         TD_VC_003,
@VSNU_DEST         TD_VC_003,
@CSCO_DEST         TD_VC_003,
@CSNU_DEST         TD_VC_003,
@CSST_AGEN_PERC    TD_VC_001,
@CSST_RETE         TD_VC_001, 
@VSPO_PERC         Varchar(10),
@VSNU_SERI_PERC    Varchar(5),
@VSNU_CORR_PERC    TD_VC_020,
@VSST_AFEC_PERC    TD_VC_001,
@VSNO_RAZO_SOCI    TD_VC_050,
@CSNO_RAZO_SOCI    TD_VC_050,
@VSAP_PATE_AUXI    TD_VC_020,
@CSAP_PATE_AUXI    TD_VC_020,
@VSAP_MATE_AUXI    TD_VC_020,
@CSAP_MATE_AUXI    TD_VC_020,
@VSNO_NATU_AUX1    TD_VC_020,
@CSNO_NATU_AUX1    TD_VC_020,
@VSNO_NATU_AUX2    TD_VC_020,
@CSNO_NATU_AUX2    TD_VC_020,
@VNPO_PERC_SAGP    TD_NU_009_004,
@VNPO_PERC_NAGP    TD_NU_009_004,
@VNPO_PERC_SAGR    TD_NU_009_004


Create Table #TWMVTO_APAG_0001                            
(FE_DOCU  Datetime NULL,                            
 TI_DOCU_SUNA Char(2)  NULL,                            
 TI_DOCU Char(3)  NULL,                            
 NO_DOCU        Varchar(50) NULL,                  
 NU_DOCU Char(20) NULL,                            
 CO_UNID_CNTB Char(3)  NULL,                            
 CO_OPRC Char(3)  NULL,                            
 NU_ASTO Char(10) NULL,                            
 CO_CLIE Varchar(20) NULL,                   
 NO_CORT_CLIE Char(50) NULL,                            
 NU_RUCS_CLIE varchar(20) NULL,                            
 CO_MONE Char(3)  NULL,                            
 IM_INAF_ORIG Numeric(16,4)  NULL,                            
 IM_AFEC_ORIG Numeric(16,4)  NULL,                            
 IM_EXPO_ORIG Numeric(16,4)  NULL,                                
 IM_IIGV_ORIG Numeric(16,4)  NULL,                            
 IM_TOTA_ORIG Numeric(16,4)  NULL,                            
 IM_INAF_CNTB Numeric(16,4)  NULL,                            
 IM_AFEC_CNTB Numeric(16,4)  NULL,                            
 IM_EXPO_CNTB Numeric(16,4)  NULL,                            
 IM_IIGV_CNTB Numeric(16,4)  NULL,                            
 IM_TOTA_CNTB Numeric(16,4)  NULL,                            
 FA_CAMB Numeric(9,4)   NULL,                       
 IM_IIGV_IISC   Numeric(16,4)  NULL,       
 CO_SUNA_REFE Varchar(2) NULL,       
 TI_DOCU_REFE Varchar(3) NULL,      
 NU_DOCU_REFE Varchar(20) NULL,  
 FE_DOCU_REFE DateTime NULL,  
 TI_AUXI_EMPR Varchar(1) NULL,                 
 CO_AUXI_EMPR Varchar(20) NULL,  
 CO_EMPR Varchar(2) NULL,  
 IM_REFE_BASE Numeric(16,4) NULL,
 IM_REFE_IIGV Numeric(16,4) NULL, 
 TI_PERS_SUNA   Varchar(3) NULL, 
 CO_DOCU_SUNA   Varchar(3) NULL, 
 NU_DOCU_SUNA   Varchar(20) NULL,

 ST_FORM_1062   Varchar(1) NULL,
 ST_FORM_1262   Varchar(1) NULL,
 ST_FORM_1662   Varchar(1) NULL,
 NU_ORDE_FORM   Numeric(16,4) NULL, 
 CO_DEST        Varchar(3) NULL,
 NU_DEST        Varchar(3) NULL,
 NO_RAZO_SOCI   Varchar(50) NULL,
 AP_PATE_AUXI   Varchar(20) NULL,
 AP_MATE_AUXI   Varchar(20) NULL,
 NO_NATU_AUX1   Varchar(20) NULL,
 NO_NATU_AUX2   Varchar(20) NULL,

 PO_PERC        Varchar(10) NULL,
 NU_SERI_PERC   Varchar(5) NULL,
 NU_CORR_PERC   Varchar(20) NULL,
 ST_AFEC_PERC   Varchar(1) NULL
 )                            

SELECT @ISTI_REPO_INFO = 'DDD'
           
 Select @VNIM_TOTA_CONT = 0.00            
 Select @VNIM_IIGV_CONT = 0.00            
 Select @VNIM_EXPO_CONT = 0.00            
 Select @VNIM_AFEC_CONX = 0.00            
 Select @VNIM_INAF_CONX = 0.00            
            
 Select @VNIM_IIGV_ORIG = 0.00                            
 Select @VNIM_TOTA_ORIG = 0.00                            
 Select @VNIM_EXPO_ORIG = 0.00              
 Select @VDFE_DOCU      = Null                            
 Select @VSTI_DOCU      = Null              
 Select @VSNO_CORT_CLIE = Null                            
 Select @VSNU_RUCS_CLIE = Null                            
 Select @VSCO_MONE      = Null                            
 Select @VNIM_AFEC_ORIX = 0.00                            
 Select @VNIM_INAF_ORIX = 0.00                            
 Select @VNIM_EXPO_ORIX = 0.00                            
 Select @VNIM_IIGV_ORIX = 0.00                            
 Select @VNIM_TOTA_ORIX = 0.00                            
 Select @VNIM_AFEC_SOLX = 0.00                            
 Select @VNIM_INAF_SOLX = 0.00                            
 Select @VNIM_EXPO_SOLX = 0.00                            
 Select @VNIM_IIGV_SOLX = 0.00                            
 Select @VNIM_TOTA_ORIX = 0.00                            
 Select @VNFA_CAMB      = 0.00                                
 Select @VSNU_ASTO = Null                            
 Select @VSTI_CAMB_BASE = NULL                
 Select @VDFE_ASTO_CNTB = NULL                
 Select @VSTI_DOCU_REFE = NULL      
 Select @VSNU_DOCU_REFE = NULL      
 Select @VDFE_DOCU_REFE = NULL      
 Select @VSTI_AUXI_EMPR = NULL  
 Select @VSCO_AUXI_EMPR = NULL  
 Select @VNIM_VALO_BASE = 0
 Select @VNIM_VALO_IIGV = 0
Select @VSTI_PERS_SUNA = NULL
Select @VSCO_DOCU_SUNA = NULL
Select @VSNU_DOCU_SUNA = NULL
Select @VSCO_DEST = NULL
Select @VSNU_DEST = NULL
Select @VSPO_PERC = ''
Select @VSNU_SERI_PERC = ''
Select @VSNU_CORR_PERC = ''
Select @VSST_AFEC_PERC = 'N'
Select @VSNO_RAZO_SOCI = NULL
Select @VSAP_PATE_AUXI = NULL
Select @VSAP_MATE_AUXI = NULL
Select @VSNO_NATU_AUX1 = NULL
Select @VSNO_NATU_AUX2 = NULL 
Select @VSCO_AUXI = NULL
Select @VSNO_CORT_CLIE = NULL
Select @VSNU_RUCS_CLIE = NULL
Select @VNPO_PERC_SAGP = NULL
Select @VNPO_PERC_NAGP = NULL
Select @VNPO_PERC_SAGR = NULL
                         
Select @VSCO_MONE_BAS1 = CO_MONE,                             
       @VSID_VENT = ID_VENT,                             
       @VSID_IIGV = ID_IMPT_VENT,                            
       @VSID_EXPO = ID_0003                            
  From TTCNTB_EMPR                       
Where CO_EMPR = @ISCO_EMPR                             
  and NU_CNTB_EMPR = @INNU_CNTB_EMPR                            
        
/*----- Cursor para el reporte de Registro de Compras -----*/                            
Select @VSNU_CNTB_EMPR = Convert(Varchar(1),@INNU_CNTB_EMPR)                            
Select @VSNU_ANNO      = Convert(Varchar(4),@INNU_ANNO )                            
Select @VSNU_MESE_INIC = Convert(Varchar(2),@INNU_MESE_INIC )                            
Select @VSNU_MESE_FINA = Convert(Varchar(2),@INNU_MESE_FINA )                            
                      
-- OBTENGO EL IGV ANTES DE DEFINIR EL CURSOR                            
                          
Select @VSCO_SUNA_NOCR = CO_SUNA_NOCR,
@VSCO_MONE_DOLA = IsNull(Rtrim(Ltrim(CO_MONE_DOLA)),'')
From TMPARA_CONT                           
Where CO_EMPR = @ISCO_EMPR                          

Select @VSCO_MONE_NACI = IsNull(Rtrim(CO_MONE_NACI),'') 
From TMEMPR 
Where CO_EMPR = @ISCO_EMPR
                            
SELECT @VNPO_IGV1_ANNO = PO_IMPT_VEN1,                            
       @VNPO_IGV2_ANNO = PO_IMPT_VEN2,                             
       @VNPO_REN1 = PO_IMPT_REN1,                            
       @VNPO_REN2 = PO_IMPT_REN2,
@VNPO_PERC_SAGP = IsNull(PO_PERC_SAGP,0),
@VNPO_PERC_NAGP = IsNull(PO_PERC_NAGP,0),
@VNPO_PERC_SAGR = IsNull(PO_PERC_SAGR,0)                            
From  TTPORC_IMPT                            
Where CO_EMPR = @ISCO_EMPR                            
And   NU_ANNO = @INNU_ANNO                            
And   NU_MESE = @INNU_MESE_FINA              
                           
If @VNPO_IGV1_ANNO IS Null                            
 Select @VNPO_IGV1_ANNO = 0.00                            
If @VNPO_IGV2_ANNO IS Null    
 Select @VNPO_IGV2_ANNO = 0.00                          
If @VNPO_REN1 IS Null                            
 Select @VNPO_REN1 = 0.00                            
If @VNPO_REN2 IS Null                            
 Select @VNPO_REN2 = 0.00                            
  
Exec(' Declare CU_TXMVTO_CNTB_Q46_1 Cursor For   
 Select  TXMVTO_CNTB.FE_DOCU, TXMVTO_CNTB.TI_DOCU, TXMVTO_CNTB.NU_DOCU, TXMVTO_CNTB.CO_UNID_CNTB,   
 TXMVTO_CNTB.CO_OPRC_CNTB, TXMVTO_CNTB.NU_MESE, TXMVTO_CNTB.NU_ASTO, TXMVTO_CNTB.TI_AUXI_EMPR,   
 TXMVTO_CNTB.CO_AUXI_EMPR, TXMVTO_CNTB.CO_CNTA_EMPR, TXMVTO_CNTB.TI_OPER, TXMVTO_CNTB.CO_MONE,   
 TXMVTO_CNTB.FA_CAMB, TXMVTO_CNTB.IM_MVTO_ORIG, TXMVTO_CNTB.IM_MVTO_CNTB, TTIDEN_CNTA.ID_CNTA,   
 IsNull(TTPORC_IMPT.PO_IMPT_REN1,0), IsNull(TTPORC_IMPT.PO_IMPT_REN2,0),   
 IsNull(TTPORC_IMPT.PO_IMPT_VEN1,0), IsNull(TTPORC_IMPT.PO_IMPT_VEN2,0), TXMVTO_CNTB.FE_ASTO_CNTB, TXMVTO_CNTB.TI_CAMB, TMPLAN_ANNO.ST_CNTA_CAMB,   
 TTDOCU_CNTB.CO_SUNA, TXMVTO_CNTB.TI_DOCU_REFE,TXMVTO_CNTB.NU_DOCU_REFE,TXMVTO_CNTB.FE_DOCU_REFE,
 TXMVTO_CNTB.CO_DEST,TXMVTO_CNTB.NU_DEST,
 TMAUXI_EMPR.CO_AUXI_EMPR,TMAUXI_EMPR.NO_AUXI,TMAUXI_EMPR.NU_RUCS,
 IsNull(TMAUXI_EMPR.TI_PERS_SUNA,""),IsNull(TMAUXI_EMPR.CO_DOCU_SUNA,""),
 IsNull(TMAUXI_EMPR.NU_DOCU_SUNA,""),TMAUXI_EMPR.ST_AGEN_PERC,TMAUXI_EMPR.ST_RETE,
 TMAUXI_EMPR.NO_AUXI,TMAUXI_EMPR.NU_RUCS,
 TMAUXI_EMPR.NO_RAZO_SOCI,TMAUXI_EMPR.AP_PATE_AUXI,TMAUXI_EMPR.AP_MATE_AUXI,
 TMAUXI_EMPR.NO_NATU_AUX1,TMAUXI_EMPR.NO_NATU_AUX2
 From TXMVTO_CNTB  
  Left Outer Join TTPORC_IMPT On  
  TTPORC_IMPT.CO_EMPR = TXMVTO_CNTB.CO_EMPR   
  And TTPORC_IMPT.NU_ANNO = TXMVTO_CNTB.NU_ANNO   
  And TTPORC_IMPT.NU_MESE = TXMVTO_CNTB.NU_MESE  
  
  Left Outer Join TTDOCU_CNTB On   
  TTDOCU_CNTB.TI_DOCU = TXMVTO_CNTB.TI_DOCU_REFE  

  Left Outer Join TMAUXI_EMPR On 
 TMAUXI_EMPR.CO_EMPR = TXMVTO_CNTB.CO_EMPR 
 And TMAUXI_EMPR.TI_AUXI_EMPR = TXMVTO_CNTB.TI_AUXI_EMPR 
 And TMAUXI_EMPR.CO_AUXI_EMPR = TXMVTO_CNTB.CO_AUXI_EMPR,   
  
 TTIDEN_CNTA, TMPLAN_ANNO  
 Where TXMVTO_CNTB.CO_EMPR = "' + @ISCO_EMPR + '"                          
 And TXMVTO_CNTB.NU_CNTB_EMPR = ' + @VSNU_CNTB_EMPR + '                            
 And TXMVTO_CNTB.CO_OPRC_CNTB In (   
     Select T1.CO_OPRC_CNTB From TTIDEN_OPER T1   
     Where T1.CO_EMPR = TXMVTO_CNTB.CO_EMPR   
     And T1.NU_CNTB_EMPR = TXMVTO_CNTB.NU_CNTB_EMPR   
     And T1.ID_OPRC   = "' + @VSID_VENT + '" )   
 And TXMVTO_CNTB.NU_ANNO  = ' + @VSNU_ANNO + '                            
 And TXMVTO_CNTB.NU_MESE >= ' + @VSNU_MESE_INIC + '                  
 And TXMVTO_CNTB.NU_MESE <= ' + @VSNU_MESE_FINA + '                           
 And ((TXMVTO_CNTB.CO_CNTA_EMPR In (   
     Select T2.CO_CNTA_EMPR From TTIDEN_CNTA T2   
     Where T2.CO_EMPR = TXMVTO_CNTB.CO_EMPR  
     And T2.NU_CNTB_EMPR = TXMVTO_CNTB.NU_CNTB_EMPR  
     And T2.ID_CNTA In ( "' + @VSID_VENT + '", "' + @VSID_EXPO + '"))  )                    
 Or  (TXMVTO_CNTB.CO_CNTA_EMPR In (   
     Select T2.CO_CNTA_EMPR From TTIDEN_CNTA T2   
     Where T2.CO_EMPR = TXMVTO_CNTB.CO_EMPR  
     And T2.NU_CNTB_EMPR = TXMVTO_CNTB.NU_CNTB_EMPR  
     And T2.ID_CNTA = "' + @VSID_IIGV + '")))  
 and TXMVTO_CNTB.SI_MVTO_CNTB = "APR"   
 and TTIDEN_CNTA.CO_EMPR   = TXMVTO_CNTB.CO_EMPR   
 and TTIDEN_CNTA.CO_CNTA_EMPR = TXMVTO_CNTB.CO_CNTA_EMPR   
 and TTIDEN_CNTA.NU_CNTB_EMPR = TXMVTO_CNTB.NU_CNTB_EMPR   
 And TMPLAN_ANNO.CO_EMPR = TXMVTO_CNTB.CO_EMPR   
 And TMPLAN_ANNO.CO_CNTA_EMPR = TXMVTO_CNTB.CO_CNTA_EMPR   
 Union All   
 Select Null, Null, Null, "99", "999", 99, "9999999999", Null, Null,   
 Null, Null, Null, Null, Null, Null, Null, Null, Null, Null, Null, Null, Null, Null, Null, Null, Null,NULL,
 NULL,NULL, 
 NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL
 Order By 4,5,6,7,10,8,9 ' )                            
                            
Open CU_TXMVTO_CNTB_Q46_1                            
Fetch CU_TXMVTO_CNTB_Q46_1 into                         
    @CDFE_DOCU, @CSTI_DOCU_CNTB, @CSNU_DOCU, @CSCO_UNID, @CSCO_OPRC, @CNNU_MESE,                
    @CSNU_ASTO, @CSTI_AUXI_EMPR, @CSCO_AUXI, @CSCN_CNTB_EMPR, @CSTI_OPER_CNTB,                       
    @CSCO_MONE, @CNFA_CAMB, @CNIM_MVTO_ORIG, @CNIM_MVTO_CNTB, @CSID_CNTA,                            
    @CNPO_REN1, @CNPO_REN2, @CNPO_IGV1, @CNPO_IGV2, @CDFE_ASTO_CNTB, @CSTI_CAMB, @CSST_CNTA_CAMB,       
    @CSCO_SUNA_REFE, @CSTI_DOCU_REFE, @CSNU_DOCU_REFE, @CDFE_DOCU_REFE,
    @CSCO_DEST,@CSNU_DEST,@VSCO_AUXI,@VSNO_CORT_CLIE,@VSNU_RUCS_CLIE,@CSTI_PERS_SUNA,@CSCO_DOCU_SUNA,@CSNU_DOCU_SUNA,
    @CSST_AGEN_PERC,@CSST_RETE,@CSNO_AUXI,@CSNU_RUCS,
    @CSNO_RAZO_SOCI,@CSAP_PATE_AUXI,@CSAP_MATE_AUXI,@CSNO_NATU_AUX1,@CSNO_NATU_AUX2
                            
Select @CSNU_ASTO_BASE = Null                            
Select @VSCO_MONE_BASE = Null                            
                            
While @@Fetch_status = 0                            
 Begin                            
                             
  If @CSNU_ASTO_BASE != Rtrim(@CSCO_UNID) + Rtrim(@CSCO_OPRC) +                             
    Substring( Convert(Varchar(3),100 + @CNNU_MESE),2,2) + Rtrim(@CSNU_ASTO)                             
    And @VSCO_MONE_BASE IS NOT Null                            
   Begin                            
  
     Select @VNIM_TOTA_BASX = Round(@VNIM_TOTA_ORIG - @VNIM_IIGV_ORIG,2)                            
     Select @VNIM_TOTA_BASY = Round(@VNIM_IIGV_ORIG / ((@VNPO_IGV1 + @VNPO_IGV2) / 100),2)                            
            
     Select @VNIM_CONT_BASX = Round(@VNIM_TOTA_CONT - @VNIM_IIGV_CONT,2)                            
     Select @VNIM_CONT_BASY = Round(@VNIM_IIGV_CONT / ((@VNPO_IGV1 + @VNPO_IGV2) / 100),2)                            
                              
     If Abs(Round(@VNIM_TOTA_BASX - @VNIM_TOTA_BASY,2)) > 0.50                            
     Begin                            
      Select @VNIM_AFEC_ORIX = Round(@VNIM_TOTA_BASY,2)                            
      Select @VNIM_INAF_ORIX = Round(@VNIM_TOTA_BASX - @VNIM_TOTA_BASY,2)                            
      Select @VNIM_AFEC_CONX = Round(@VNIM_CONT_BASY,2)                            
      Select @VNIM_INAF_CONX = Round(@VNIM_CONT_BASX - @VNIM_CONT_BASY,2)                            
     End                                
     Else                            
     Begin                            
      Select @VNIM_AFEC_ORIX = Round(@VNIM_TOTA_BASX,2)                            
      Select @VNIM_INAF_ORIX = 0.00                            
      Select @VNIM_AFEC_CONX = Round(@VNIM_CONT_BASX,2)                            
      Select @VNIM_INAF_CONX = 0.00                            
     End                
              
     If @VSCO_MONE != @VSCO_MONE_BAS1                            
     Begin                            
      Select @VNIM_EXPO_ORIX = @VNIM_EXPO_ORIG                            
      Select @VNIM_IIGV_ORIX = @VNIM_IIGV_ORIG                       
      Select @VNIM_TOTA_ORIX = @VNIM_TOTA_ORIG                            

      Select @VNIM_AFEC_SOLX = @VNIM_AFEC_CONX            
      Select @VNIM_INAF_SOLX = @VNIM_INAF_CONX            
      Select @VNIM_EXPO_SOLX = @VNIM_EXPO_CONT            
      Select @VNIM_IIGV_SOLX = @VNIM_IIGV_CONT            
      Select @VNIM_TOTA_SOLX = @VNIM_TOTA_CONT            
     End                            
     Else                          
     Begin                            /*
      Select @VNIM_AFEC_SOLX = Round(@VNIM_AFEC_ORIX,2)                            
      Select @VNIM_INAF_SOLX = Round(@VNIM_INAF_ORIX,2)                            
      Select @VNIM_EXPO_SOLX = Round(@VNIM_EXPO_ORIG,2)                            
      Select @VNIM_IIGV_SOLX = Round(@VNIM_IIGV_ORIG,2)                            
      Select @VNIM_TOTA_SOLX = Round(@VNIM_TOTA_ORIG,2)   */
      Select @VNIM_AFEC_SOLX = @VNIM_AFEC_CONX            
      Select @VNIM_INAF_SOLX = @VNIM_INAF_CONX            
      Select @VNIM_EXPO_SOLX = @VNIM_EXPO_CONT            
      Select @VNIM_IIGV_SOLX = @VNIM_IIGV_CONT            
      Select @VNIM_TOTA_SOLX = @VNIM_TOTA_CONT                                     


      Select @VNIM_AFEC_ORIX = Null                            
      Select @VNIM_INAF_ORIX = Null                            
      Select @VNIM_IIGV_ORIX = Null                            
      Select @VNIM_TOTA_ORIX = Null                            
      Select @VNFA_CAMB = Null                            
     End                            
                            
     Select @VSCO_SUNA = CO_SUNA, @VSNO_DOCU = NO_DOCU                            
     From TTDOCU_CNTB                            
     Where TI_DOCU = @VSTI_DOCU                            
                   
     If @ISTI_REPO_INFO = 'OFI'                    
      Begin                  
  
If @VNIM_EXPO_ORIX != 0                  
 Begin                  
  Select @VNIM_INAF_ORIX = 0                  
  Select @VNIM_INAF_SOLX = 0                  
  Insert Into #TWMVTO_APAG_0001   
(FE_DOCU,TI_DOCU_SUNA,TI_DOCU,NO_DOCU,NU_DOCU,CO_UNID_CNTB,CO_OPRC,NU_ASTO,CO_CLIE,  
 NO_CORT_CLIE,NU_RUCS_CLIE,CO_MONE,IM_INAF_ORIG,IM_AFEC_ORIG,IM_EXPO_ORIG,IM_IIGV_ORIG,  
 IM_TOTA_ORIG,IM_INAF_CNTB,IM_AFEC_CNTB,IM_EXPO_CNTB,IM_IIGV_CNTB,IM_TOTA_CNTB,FA_CAMB,  
 IM_IIGV_IISC,CO_SUNA_REFE,TI_DOCU_REFE,NU_DOCU_REFE,FE_DOCU_REFE,TI_AUXI_EMPR,CO_AUXI_EMPR,
 CO_EMPR,IM_REFE_BASE,IM_REFE_IIGV,CO_DEST,NU_DEST,
 PO_PERC,NU_SERI_PERC,NU_CORR_PERC,ST_AFEC_PERC,
 TI_PERS_SUNA,CO_DOCU_SUNA,NU_DOCU_SUNA,NO_RAZO_SOCI,
 AP_PATE_AUXI,AP_MATE_AUXI,NO_NATU_AUX1,NO_NATU_AUX2
)  
  Values(                            
  @VDFE_DOCU, @VSCO_SUNA, @VSTI_DOCU, @VSNO_DOCU, @VSNU_DOCU, @VSCO_UNID,                             
  @VSCO_OPRC, @VSNU_ASTO, @VSCO_AUXI, @VSNO_CORT_CLIE, @VSNU_RUCS_CLIE,                             
  @VSCO_MONE, @VNIM_INAF_ORIX, @VNIM_AFEC_ORIX, @VNIM_EXPO_ORIX, @VNIM_IIGV_ORIX,                             
  @VNIM_TOTA_ORIX, @VNIM_INAF_SOLX, @VNIM_AFEC_SOLX, @VNIM_EXPO_SOLX, @VNIM_IIGV_SOLX,                             
  @VNIM_TOTA_SOLX, @VNFA_CAMB, 0.00, @VSCO_SUNA_REFE, @VSTI_DOCU_REFE, @VSNU_DOCU_REFE,@VDFE_DOCU_REFE,
  @VSTI_AUXI_EMPR,@VSCO_AUXI_EMPR,@ISCO_EMPR,@VNIM_VALO_BASE,@VNIM_VALO_IIGV,@VSCO_DEST,@VSNU_DEST,
  @VSPO_PERC,@VSNU_SERI_PERC,@VSNU_CORR_PERC,@VSST_AFEC_PERC,
  @VSTI_PERS_SUNA,@VSCO_DOCU_SUNA,@VSNU_DOCU_SUNA,@VSNO_RAZO_SOCI,
  @VSAP_PATE_AUXI,@VSAP_MATE_AUXI,@VSNO_NATU_AUX1,@VSNO_NATU_AUX2)  
 End  
Else --If @VNIM_EXPO_ORIX = 0                  
 Insert Into #TWMVTO_APAG_0001   
(FE_DOCU,TI_DOCU_SUNA,TI_DOCU,NO_DOCU,NU_DOCU,CO_UNID_CNTB,CO_OPRC,NU_ASTO,CO_CLIE,  
 NO_CORT_CLIE,NU_RUCS_CLIE,CO_MONE,IM_INAF_ORIG,IM_AFEC_ORIG,IM_EXPO_ORIG,IM_IIGV_ORIG,  
 IM_TOTA_ORIG,IM_INAF_CNTB,IM_AFEC_CNTB,IM_EXPO_CNTB,IM_IIGV_CNTB,IM_TOTA_CNTB,FA_CAMB,  
 IM_IIGV_IISC,CO_SUNA_REFE,TI_DOCU_REFE,NU_DOCU_REFE,FE_DOCU_REFE,TI_AUXI_EMPR,CO_AUXI_EMPR,
 CO_EMPR,IM_REFE_BASE,IM_REFE_IIGV,CO_DEST,NU_DEST,
 PO_PERC,NU_SERI_PERC,NU_CORR_PERC,ST_AFEC_PERC,
 TI_PERS_SUNA,CO_DOCU_SUNA,NU_DOCU_SUNA,NO_RAZO_SOCI,
 AP_PATE_AUXI,AP_MATE_AUXI,NO_NATU_AUX1,NO_NATU_AUX2)  
 Values(                            
 @VDFE_DOCU, @VSCO_SUNA, @VSTI_DOCU, @VSNO_DOCU, @VSNU_DOCU, @VSCO_UNID,                             
 @VSCO_OPRC, @VSNU_ASTO, @VSCO_AUXI, @VSNO_CORT_CLIE, @VSNU_RUCS_CLIE,                             
 @VSCO_MONE, @VNIM_INAF_ORIX, @VNIM_AFEC_ORIX, @VNIM_EXPO_ORIX, @VNIM_IIGV_ORIX,                             
 @VNIM_TOTA_ORIX, @VNIM_INAF_SOLX, @VNIM_AFEC_SOLX, @VNIM_EXPO_SOLX, @VNIM_IIGV_SOLX,                             
 @VNIM_TOTA_SOLX, @VNFA_CAMB, 0.00, @VSCO_SUNA_REFE, @VSTI_DOCU_REFE, @VSNU_DOCU_REFE,@VDFE_DOCU_REFE,
 @VSTI_AUXI_EMPR,@VSCO_AUXI_EMPR,@ISCO_EMPR,@VNIM_VALO_BASE,@VNIM_VALO_IIGV,@VSCO_DEST,@VSNU_DEST,
 @VSPO_PERC,@VSNU_SERI_PERC,@VSNU_CORR_PERC,@VSST_AFEC_PERC,
 @VSTI_PERS_SUNA,@VSCO_DOCU_SUNA,@VSNU_DOCU_SUNA,@VSNO_RAZO_SOCI,
 @VSAP_PATE_AUXI,@VSAP_MATE_AUXI,@VSNO_NATU_AUX1,@VSNO_NATU_AUX2)  
 End                  
  
Else --If @ISTI_REPO_INFO != 'OFI'                  
                
 Insert Into #TWMVTO_APAG_0001   
(FE_DOCU,TI_DOCU_SUNA,TI_DOCU,NO_DOCU,NU_DOCU,CO_UNID_CNTB,CO_OPRC,NU_ASTO,CO_CLIE,  
 NO_CORT_CLIE,NU_RUCS_CLIE,CO_MONE,IM_INAF_ORIG,IM_AFEC_ORIG,IM_EXPO_ORIG,IM_IIGV_ORIG,  
 IM_TOTA_ORIG,IM_INAF_CNTB,IM_AFEC_CNTB,IM_EXPO_CNTB,IM_IIGV_CNTB,IM_TOTA_CNTB,FA_CAMB,  
 IM_IIGV_IISC,CO_SUNA_REFE,TI_DOCU_REFE,NU_DOCU_REFE,FE_DOCU_REFE,TI_AUXI_EMPR,CO_AUXI_EMPR,
 CO_EMPR,IM_REFE_BASE,IM_REFE_IIGV,CO_DEST,NU_DEST,
 PO_PERC,NU_SERI_PERC,NU_CORR_PERC,ST_AFEC_PERC,
 TI_PERS_SUNA,CO_DOCU_SUNA,NU_DOCU_SUNA,NO_RAZO_SOCI,
 AP_PATE_AUXI,AP_MATE_AUXI,NO_NATU_AUX1,NO_NATU_AUX2)  
 Values(                            
 @VDFE_DOCU, @VSCO_SUNA, @VSTI_DOCU, @VSNO_DOCU, @VSNU_DOCU, @VSCO_UNID,                             
 @VSCO_OPRC, @VSNU_ASTO, @VSCO_AUXI, @VSNO_CORT_CLIE, @VSNU_RUCS_CLIE,                             
 @VSCO_MONE, @VNIM_INAF_ORIX, @VNIM_AFEC_ORIX, @VNIM_EXPO_ORIX, @VNIM_IIGV_ORIX,                             
 @VNIM_TOTA_ORIX, @VNIM_INAF_SOLX, @VNIM_AFEC_SOLX, @VNIM_EXPO_SOLX, @VNIM_IIGV_SOLX,                             
 @VNIM_TOTA_SOLX, @VNFA_CAMB, 0.00, @VSCO_SUNA_REFE, @VSTI_DOCU_REFE, @VSNU_DOCU_REFE,@VDFE_DOCU_REFE,
 @VSTI_AUXI_EMPR,@VSCO_AUXI_EMPR,@ISCO_EMPR,@VNIM_VALO_BASE,@VNIM_VALO_IIGV,@VSCO_DEST,@VSNU_DEST,
 @VSPO_PERC,@VSNU_SERI_PERC,@VSNU_CORR_PERC,@VSST_AFEC_PERC,
 @VSTI_PERS_SUNA,@VSCO_DOCU_SUNA,@VSNU_DOCU_SUNA,@VSNO_RAZO_SOCI,
 @VSAP_PATE_AUXI,@VSAP_MATE_AUXI,@VSNO_NATU_AUX1,@VSNO_NATU_AUX2)  
                           
 Select @VSTI_CAMB_BASE = NULL                
 Select @VDFE_ASTO_CNTB = NULL                
 Select @VSCO_MONE_BASE = Null                            
 Select @VDFE_DOCU      = Null                            
 Select @VSTI_DOCU      = Null                            
 Select @VSNO_CORT_CLIE = Null                            
 Select @VSNU_RUCS_CLIE = Null                            
 Select @VSCO_MONE      = Null                            
 Select @VNIM_IIGV_ORIG = 0.00                            
 Select @VNIM_TOTA_ORIG = 0.00                            
 Select @VNIM_EXPO_ORIG = 0.00                            
 Select @VNIM_AFEC_ORIX = 0.00                            
 Select @VNIM_INAF_ORIX = 0.00                            
 Select @VNIM_EXPO_ORIX = 0.00                            
 Select @VNIM_IIGV_ORIX = 0.00                            
 Select @VNIM_TOTA_ORIX = 0.00                            
 Select @VNIM_AFEC_SOLX = 0.00                            
 Select @VNIM_INAF_SOLX = 0.00                            
 Select @VNIM_EXPO_SOLX = 0.00                            
 Select @VNIM_IIGV_SOLX = 0.00                            
 Select @VNIM_TOTA_ORIX = 0.00                            
 Select @VNFA_CAMB = 0.00                            
 Select @VSNU_ASTO = Null            
                            
 Select @VNIM_TOTA_CONT = 0.00            
 Select @VNIM_IIGV_CONT = 0.00            
 Select @VNIM_EXPO_CONT = 0.00            
 Select @VNIM_AFEC_CONX = 0.00            
 Select @VNIM_INAF_CONX = 0.00            
 Select @VSCO_SUNA_REFE = NULL      
 Select @VSTI_DOCU_REFE = NULL      
 Select @VSNU_DOCU_REFE = NULL      
 Select @VDFE_DOCU_REFE = NULL      
 Select @VSTI_AUXI_EMPR = NULL  
 Select @VSCO_AUXI_EMPR = NULL  
 Select @VNIM_VALO_BASE = 0
 Select @VNIM_VALO_IIGV = 0

Select @VSTI_PERS_SUNA = NULL
Select @VSCO_DOCU_SUNA = NULL
Select @VSNU_DOCU_SUNA = NULL
Select @VSCO_DEST = NULL
Select @VSNU_DEST = NULL
Select @VSPO_PERC = ''
Select @VSNU_SERI_PERC = ''
Select @VSNU_CORR_PERC = ''
Select @VSST_AFEC_PERC = 'N'

Select @VSNO_RAZO_SOCI = NULL
Select @VSAP_PATE_AUXI = NULL
Select @VSAP_MATE_AUXI = NULL
Select @VSNO_NATU_AUX1 = NULL
Select @VSNO_NATU_AUX2 = NULL 
Select @VSCO_AUXI = NULL
Select @VSNO_CORT_CLIE = NULL
Select @VSNU_RUCS_CLIE = NULL

                  
End  

If IsNull(Rtrim(@CSNU_DOCU_REFE),'') != ''
 Begin 
 --- LLAMA A STORE QUE OBTIENE LA BASE IMPONIBLE E IMPUESTO DEL DOCUMENTO REFERENCIA
  Exec SP_TXMVTO_CNTB_Q47 @ISCO_EMPR,@INNU_CNTB_EMPR,@INNU_ANNO,@INNU_MESE_INIC,@INNU_MESE_FINA,
  @CSCN_CNTB_EMPR,@CSTI_AUXI_EMPR,@CSCO_AUXI,@CSTI_DOCU_REFE,@CSNU_DOCU_REFE,  
  'OFI',@VNIM_VALO_BASE OUT,@VNIM_VALO_IIGV OUT
 --,:DCOAPAG.sFI_0001
 End 

 /*-----   Acumula Movimientos - Provisiones        -----*/                            
   Select @CSNU_ASTO_BASE = Rtrim(@CSCO_UNID) + Rtrim(@CSCO_OPRC) +                             
    Substring( Convert(Varchar(3),100 + @CNNU_MESE),2,2) + Rtrim(@CSNU_ASTO)                            
                      
-- OBTENGO EL CODIGO SUNAT DE LA TABLA DE DOCUMENTOS                            
 select @VSCO_SUNA_0001 = CO_SUNA                            
 FROM TTDOCU_CNTB                            
 WHERE TI_DOCU = @CSTI_DOCU_CNTB                            
 If @CSTI_DOCU_CNTB is not null                            
-- SI EL CO_SUNA DE LA TMPARA_CONT = CO_SUNA DE LA TTDOCU_CNTB                
 IF  @VSCO_SUNA_NOCR = @VSCO_SUNA_0001                            
-- SE OBTIENE EL TIPO DOCUMENTO DE REFERENCIA, EL NUMERO Y LA FECHA DE LA FACTURA ORIGEN                        
  Begin                            
    Select  @VSNU_DOCU_0001 = @CSNU_DOCU_REFE        
    Select  @VDFE_DOCU_0001 = @CDFE_DOCU_REFE        
                            
                            
    --SI EL MES DEL DOCUMENTO ES IGUAL AL MES DEL REPORTE                            
    IF Year(@VDFE_DOCU_0001) + Month(@VDFE_DOCU_0001) = @INNU_ANNO + @INNU_MESE_FINA                            
      Begin                            
        SELECT @VNPO_IGV1 = @VNPO_IGV1_ANNO                            
        SELECT @VNPO_IGV2 = @VNPO_IGV2_ANNO                            
      End                            
                            
    --SI EL MES DEL DOCUMENTO ES DIFERENTE AL MES DEL REPORTE                            
    If Year(@VDFE_DOCU_0001)  + Month(@VDFE_DOCU_0001) != @INNU_ANNO + @INNU_MESE_FINA                            
      Select @VNPO_IGV1 = PO_IMPT_VEN1,                            
             @VNPO_IGV2 = PO_IMPT_VEN2                            
      From TTPORC_IMPT                            
      Where CO_EMPR = @ISCO_EMPR                            
      And   NU_ANNO = Year(@VDFE_DOCU_0001)                               
      And   NU_MESE = MONTH(@VDFE_DOCU_0001)                            
  End                            
 Else   -- IF  @VSCO_SUNA_NOCR <> @VSCO_SUNA_0001                            
  Begin                            
   If Year(@CDFE_DOCU) + Month(@CDFE_DOCU) = @INNU_ANNO + @INNU_MESE_FINA                              
    Begin                            
        SELECT @VNPO_IGV1 = @VNPO_IGV1_ANNO                            
        SELECT @VNPO_IGV2 = @VNPO_IGV2_ANNO                            
    End                            
                            
  --SI EL MES DEL DOCUMENTO ES DIFERENTE AL MES DEL REPORTE                            
  If Year(@CDFE_DOCU) + Month(@CDFE_DOCU) != @INNU_ANNO + @INNU_MESE_FINA                            
    Select @VNPO_IGV1 = PO_IMPT_VEN1,                            
           @VNPO_IGV2 = PO_IMPT_VEN2                            
    From TTPORC_IMPT                            
    Where CO_EMPR = @ISCO_EMPR                            
    And   NU_ANNO = Year(@CDFE_DOCU)                             
    And   NU_MESE = Month(@CDFE_DOCU)                            
 End --END DEL ELSE                            
 -- FIN DEL IF  @VSCO_SUNA_NOCR = @VSCO_SUNA_0001                            
------------------------------------------------------                            
                  
   -- Cuentas del Registro de VENTAS --------------         
   If @CSID_CNTA = '002'            
   Begin  
-------------------------------
-----CALCULO DATOS DE PERCEPCION 
-- solo entra a esta opci?n si es una venta nacional --- para lo cual evaluo el campo ti_pers_suna
Select @VSPO_PERC = ''
Select @VSNU_SERI_PERC = ''
Select @VSNU_CORR_PERC = ''
Select @VSST_AFEC_PERC = 'N'
Select @VSTI_PERS_SUNA = @CSTI_PERS_SUNA

If IsNull(Rtrim(@VSTI_PERS_SUNA),'') != '03' -- COD '03' SON NO DOMICILIADOS (EXTRANJEROS)
Begin

Select @VSPO_PERC = (Case When @CSST_AGEN_PERC = 'S' Then RTRIM(LTRIM(STR(@VNPO_PERC_SAGP,10,2))) --0.05% REDONDEA A ENTERO 
When @CSST_AGEN_PERC = 'N' And @CSST_RETE = 'N' Then RTRIM(LTRIM(STR(@VNPO_PERC_NAGP,10,2))) -- 2% REDONDEA A ENTERO 
When @CSST_RETE = 'S' Then RTRIM(LTRIM(STR(@VNPO_PERC_SAGR,10,2)))  -- 0% REDONDEA A ENTERO 
Else '' End), 
@VSNU_SERI_PERC = IsNull(Substring(tX.NU_DOCU, 1, IsNull(t6.NU_LONG_SERI,0)),''),
@VSNU_CORR_PERC = IsNull((Case When t6.ST_SERI = 'S' Then Substring(tX.NU_DOCU, IsNull(t6.NU_LONG_SERI,0) + 2, IsNull(t6.NU_LONG,0))
Else tX.NU_DOCU End),'')

/*Select 'PERCY',(Case When @CSST_AGEN_PERC = 'S' Then STR(@VNPO_PERC_SAGP) --0.05% REDONDEA A ENTERO 
When @CSST_AGEN_PERC = 'N' And @CSST_RETE = 'N' Then STR(@VNPO_PERC_NAGP) -- 2% REDONDEA A ENTERO 
When @CSST_RETE = 'S' Then STR(@VNPO_PERC_SAGR)  -- 0% REDONDEA A ENTERO 
Else '' End), 
 IsNull(Substring(tX.NU_DOCU, 1, IsNull(t6.NU_LONG_SERI,0)),''),
 IsNull((Case When t6.ST_SERI = 'S' Then Substring(tX.NU_DOCU, IsNull(t6.NU_LONG_SERI,0) + 2, IsNull(t6.NU_LONG,0))
Else tX.NU_DOCU End),'')*/
From TXMVTO_CNTB tX, 
-- OBTIENE EL ASIENTO DE CANCELACION DE LA VENTA 
      (Select CO_EMPR,NU_CNTB_EMPR,CO_UNID_CNTB,CO_OPRC_CNTB,NU_ANNO,NU_MESE,NU_ASTO
       From TXMVTO_CNTB t1
       Where t1.CO_EMPR = @ISCO_EMPR
       And t1.NU_CNTB_EMPR = @INNU_CNTB_EMPR 
       And t1.NU_ANNO = @INNU_ANNO
       And t1.CO_CNTA_EMPR = @CSCN_CNTB_EMPR
       And t1.TI_AUXI_EMPR = @CSTI_AUXI_EMPR
       And t1.CO_AUXI_EMPR = @CSCO_AUXI
       And t1.TI_DOCU = @CSTI_DOCU_CNTB
       And t1.NU_DOCU = @CSNU_DOCU
       And t1.SI_MVTO_CNTB = 'APR'
       And Not Exists (Select CO_EMPR
       From TTIDEN_OPER t2
       Where t2.CO_EMPR = @ISCO_EMPR
       And t2.NU_CNTB_EMPR = @INNU_CNTB_EMPR 
       And t2.ID_OPRC = '002'
       And t2.CO_OPRC_CNTB = t1.CO_OPRC_CNTB)) tY, TTIDEN_CNTA tZ, --TTPORC_IMPT t5, 
TTDOCU_CNTB t6
Where tX.CO_EMPR = tY.CO_EMPR
And tX.NU_CNTB_EMPR = tY.NU_CNTB_EMPR
And tX.CO_UNID_CNTB = tY.CO_UNID_CNTB
And tX.CO_OPRC_CNTB = tY.CO_OPRC_CNTB
And tX.NU_ANNO = tY.NU_ANNO
And tX.NU_MESE = tY.NU_MESE
And tX.NU_ASTO = tY.NU_ASTO
And tX.SI_MVTO_CNTB = 'APR'
And tZ.CO_EMPR = tX.CO_EMPR
And tZ.NU_CNTB_EMPR = tX.NU_CNTB_EMPR
And tZ.ID_CNTA = '035'
And tZ.CO_CNTA_EMPR = tX.CO_CNTA_EMPR
/*And t5.CO_EMPR = tX.CO_EMPR 
And t5.NU_ANNO = @INNU_ANNO
And t5.NU_MESE = @INNU_MESE_INIC */
And t6.TI_DOCU = tX.TI_DOCU

If IsNull(Rtrim(@VSNU_CORR_PERC),'') != ''
 Begin
  Select @VSST_AFEC_PERC = 'S'
 End

End
--FIN CALCULO DATOS DE PERCEPCION 
--------------------------------

                            
     If @VSCO_MONE_BASE IS Null                            
     Begin                            
/*      Select @VSCO_AUXI = CO_AUXI_EMPR,
             @VSNO_CORT_CLIE = NO_AUXI,
             @VSNU_RUCS_CLIE = NU_RUCS,
          @VSTI_PERS_SUNA = IsNull(TI_PERS_SUNA,''),
          @VSCO_DOCU_SUNA = IsNull(CO_DOCU_SUNA,''),
          @VSNU_DOCU_SUNA = IsNull(NU_DOCU_SUNA,'')
      From TMAUXI_EMPR                            
      Where  CO_EMPR = @ISCO_EMPR And                            
      TI_AUXI_EMPR = @CSTI_AUXI_EMPR And                            
      CO_AUXI_EMPR = @CSCO_AUXI                            */

      Select @VSCO_AUXI = @CSCO_AUXI
      Select @VSNO_CORT_CLIE = @CSNO_AUXI
      Select @VSNU_RUCS_CLIE = @CSNU_RUCS
                            
     If IsNull(Rtrim(@VSCO_AUXI),'') = ''---If @@rowcount = 0                            
 Begin       
       Select @VDFE_DOCU = Null                            
       Select @VSTI_DOCU = Null                            
       Select @VSNU_DOCU = Null                            
       Select @VSCO_AUXI = Null                             
       Select @VSNO_CORT_CLIE = Null                            
       Select @VSNU_RUCS_CLIE = Null                            
      End                            
      Else                             
      Begin      
                            
       Select @VDFE_DOCU = @CDFE_DOCU                            
       Select @VSTI_DOCU = @CSTI_DOCU_CNTB                            
       Select @VSNU_DOCU = @CSNU_DOCU                            
      End                            
                            
      Select @VSCO_UNID = @CSCO_UNID                             
      Select @VSCO_OPRC = @CSCO_OPRC                            
      Select @VSNU_ASTO = @CSNU_ASTO                            
      Select @VSCO_SUNA_REFE = @CSCO_SUNA_REFE      
      Select @VSTI_DOCU_REFE = @CSTI_DOCU_REFE      
      Select @VSNU_DOCU_REFE = @CSNU_DOCU_REFE      
      Select @VDFE_DOCU_REFE = @CDFE_DOCU_REFE      
      Select @VSTI_AUXI_EMPR = @CSTI_AUXI_EMPR  
      Select @VSCO_AUXI_EMPR = @CSCO_AUXI  
                            
      Select @VSCO_MONE = @CSCO_MONE                            
      Select @VNFA_CAMB = Round(@CNFA_CAMB,3)                            
      Select @VSCO_MONE_BASE = @CSCO_MONE                            
      Select @VSTI_CAMB_BASE = @CSTI_CAMB                
      Select @VDFE_ASTO_CNTB = @CDFE_ASTO_CNTB              
      Select @VSCO_DEST = @CSCO_DEST
      Select @VSNU_DEST = @CSNU_DEST

      Select @VSCO_DOCU_SUNA = @CSCO_DOCU_SUNA
      Select @VSNU_DOCU_SUNA = @CSNU_DOCU_SUNA
      Select @VSNO_RAZO_SOCI = @CSNO_RAZO_SOCI
      Select @VSAP_PATE_AUXI = @CSAP_PATE_AUXI
      Select @VSAP_MATE_AUXI = @CSAP_MATE_AUXI
      Select @VSNO_NATU_AUX1 = @CSNO_NATU_AUX1
      Select @VSNO_NATU_AUX2 = @CSNO_NATU_AUX2
          
      If @VSTI_CAMB_BASE = 'PAC'          
 Begin           
    Select @VSTI_CAMB_BASE = @CSST_CNTA_CAMB           
        End            
     End --If @VSCO_MONE_BASE IS Null                            
                            
     If @VSCO_MONE_BASE IS NOT Null                            
     Begin                            
      If @VSCO_MONE_BASE != @CSCO_MONE                            
      Begin                            
      Exec SP_CONV_MONE_Q05 @ISCO_EMPR, @CSCO_MONE, @VSCO_MONE_BASE, @VSCO_MONE_BASE, @VSTI_CAMB_BASE, @VSTI_CAMB_BASE,                 
      @VNFA_CAMB,  @VDFE_ASTO_CNTB, @CNIM_MVTO_ORIG, 'P', @CNIM_MVTO_ORIG OUTPUT                      
      End                            
      If @CSTI_OPER_CNTB = 'CAR'                            
      Begin                            
       Select @VNIM_TOTA_ORIG = Round(@VNIM_TOTA_ORIG + @CNIM_MVTO_ORIG,2)                            
       Select @VNIM_TOTA_CONT = Round(@VNIM_TOTA_CONT + @CNIM_MVTO_CNTB,2)                  
      End                            
      Else If @CSTI_OPER_CNTB = 'ABO'                            
      Begin                            
       Select @VNIM_TOTA_ORIG = Round(@VNIM_TOTA_ORIG - @CNIM_MVTO_ORIG,2) 
       Select @VNIM_TOTA_CONT = Round(@VNIM_TOTA_CONT - @CNIM_MVTO_CNTB,2)                            
      End                       
     End                            
   End ---(If @CSID_CNTA = '002')                           
                            
                            
   /*----- Acumula Movimientos - IGV -----*/                             
   If @CSID_CNTA = '009'                            
   Begin                            
    If @VSCO_MONE_BASE IS NOT Null                            
    Begin    
     If @VSCO_MONE_BASE != @CSCO_MONE                            
     Begin                
      Exec SP_CONV_MONE_Q05 @ISCO_EMPR, @CSCO_MONE, @VSCO_MONE_BASE, @VSCO_MONE_BASE, @VSTI_CAMB_BASE, @VSTI_CAMB_BASE,                 
      @VNFA_CAMB,  @VDFE_ASTO_CNTB, @CNIM_MVTO_ORIG, 'P', @CNIM_MVTO_ORIG OUTPUT                      
              
     End                            
     If @CSTI_OPER_CNTB = 'ABO'                            
     Begin                            
      Select @VNIM_IIGV_ORIG = Round(@VNIM_IIGV_ORIG + @CNIM_MVTO_ORIG,2)        
      Select @VNIM_IIGV_CONT = Round(@VNIM_IIGV_CONT + @CNIM_MVTO_CNTB,2)          
     End                         
     Else If @CSTI_OPER_CNTB = 'CAR'                            
     Begin                            
      Select @VNIM_IIGV_ORIG = Round(@VNIM_IIGV_ORIG - @CNIM_MVTO_ORIG,2)                            
       Select @VNIM_IIGV_CONT = Round(@VNIM_IIGV_CONT - @CNIM_MVTO_CNTB,2)                            
     End                            
    End                            
   End --(If @CSID_CNTA = '009')                            
                            
   -- Cuenta de Exportaciones --------------                            
   If @CSID_CNTA = '026'                            
   Begin                          

     If @VSCO_MONE_BASE IS Null                          
     Begin                          
      Select @VSCO_AUXI = CO_AUXI_EMPR,                          
             @VSNO_CORT_CLIE = NO_AUXI,                            
             @VSNU_RUCS_CLIE = NU_RUCS                          
      From TMAUXI_EMPR                          
      Where  CO_EMPR = @ISCO_EMPR And                          
      TI_AUXI_EMPR = @CSTI_AUXI_EMPR And                          
      CO_AUXI_EMPR = @CSCO_AUXI                          
                          
      If @@rowcount = 0                          
     Begin              
       Select @VDFE_DOCU = Null                          
       Select @VSTI_DOCU = Null                          
       Select @VSNU_DOCU = Null                          
       Select @VSCO_AUXI = Null                           
       Select @VSNO_CORT_CLIE = Null                          
       Select @VSNU_RUCS_CLIE = Null                          
      End                          
      Else                           
      Begin                          
                          
       Select @VDFE_DOCU = @CDFE_DOCU                          
       Select @VSTI_DOCU = @CSTI_DOCU_CNTB                          
       Select @VSNU_DOCU = @CSNU_DOCU                          
      End                          
                          
      Select @VSCO_UNID = @CSCO_UNID                             
      Select @VSCO_OPRC = @CSCO_OPRC                            
      Select @VSNU_ASTO = @CSNU_ASTO                            
      Select @VSCO_SUNA_REFE = @CSCO_SUNA_REFE      
      Select @VSTI_DOCU_REFE = @CSTI_DOCU_REFE      
      Select @VSNU_DOCU_REFE = @CSNU_DOCU_REFE      
      Select @VDFE_DOCU_REFE = @CDFE_DOCU_REFE      
      Select @VSTI_AUXI_EMPR = @CSTI_AUXI_EMPR  
      Select @VSCO_AUXI_EMPR = @CSCO_AUXI  
                            
      Select @VSCO_MONE = @CSCO_MONE                            
      Select @VNFA_CAMB = Round(@CNFA_CAMB,3)                            
      Select @VSCO_MONE_BASE = @CSCO_MONE                            
      Select @VSTI_CAMB_BASE = @CSTI_CAMB                
      Select @VDFE_ASTO_CNTB = @CDFE_ASTO_CNTB              
      Select @VSCO_DEST = @CSCO_DEST
      Select @VSNU_DEST = @CSNU_DEST

      Select @VSCO_DOCU_SUNA = @CSCO_DOCU_SUNA
      Select @VSNU_DOCU_SUNA = @CSNU_DOCU_SUNA
      Select @VSNO_RAZO_SOCI = @CSNO_RAZO_SOCI
      Select @VSAP_PATE_AUXI = @CSAP_PATE_AUXI
      Select @VSAP_MATE_AUXI = @CSAP_MATE_AUXI
      Select @VSNO_NATU_AUX1 = @CSNO_NATU_AUX1
      Select @VSNO_NATU_AUX2 = @CSNO_NATU_AUX2        
        
      If @VSTI_CAMB_BASE = 'PAC'        
        Begin         
    Select @VSTI_CAMB_BASE = @CSST_CNTA_CAMB         
        End          
     End --If @VSCO_MONE_BASE IS Null 

    If 1=1--@VSCO_MONE_BASE IS NOT Null                            
    Begin                            
     If @VSCO_MONE_BASE != @CSCO_MONE                            
     Begin                            
      Exec SP_CONV_MONE_Q05 @ISCO_EMPR, @CSCO_MONE, @VSCO_MONE_BASE, @VSCO_MONE_BASE, @VSTI_CAMB_BASE, @VSTI_CAMB_BASE,                 
      @VNFA_CAMB,  @VDFE_ASTO_CNTB, @CNIM_MVTO_ORIG, 'P', @CNIM_MVTO_ORIG OUTPUT                      
     End                            
                            
     If @CSTI_OPER_CNTB = 'ABO'                            
     Begin                            
      Select @VNIM_EXPO_ORIG = Round(@VNIM_EXPO_ORIG - @CNIM_MVTO_ORIG,2)                            
       Select @VNIM_EXPO_CONT = Round(@VNIM_EXPO_CONT - @CNIM_MVTO_CNTB,2)                            
     End                            
     Else If @CSTI_OPER_CNTB = 'CAR'                            
     Begin                            
      Select @VNIM_EXPO_ORIG = Round(@VNIM_EXPO_ORIG + @CNIM_MVTO_ORIG,2)                            
       Select @VNIM_EXPO_CONT = Round(@VNIM_EXPO_CONT + @CNIM_MVTO_CNTB,2)                            
     End                            
    End                            
   End --(If @CSID_CNTA = '026')                            
                            
Fetch CU_TXMVTO_CNTB_Q46_1 into                    
    @CDFE_DOCU, @CSTI_DOCU_CNTB, @CSNU_DOCU, @CSCO_UNID, @CSCO_OPRC, @CNNU_MESE,                             
    @CSNU_ASTO, @CSTI_AUXI_EMPR, @CSCO_AUXI, @CSCN_CNTB_EMPR, @CSTI_OPER_CNTB,                             
    @CSCO_MONE, @CNFA_CAMB, @CNIM_MVTO_ORIG, @CNIM_MVTO_CNTB, @CSID_CNTA,                            
    @CNPO_REN1, @CNPO_REN2, @CNPO_IGV1,      @CNPO_IGV2, @CDFE_ASTO_CNTB, @CSTI_CAMB,       
    @CSST_CNTA_CAMB, @CSCO_SUNA_REFE, @CSTI_DOCU_REFE, @CSNU_DOCU_REFE,@CDFE_DOCU_REFE,
    @CSCO_DEST,@CSNU_DEST,@VSCO_AUXI,@VSNO_CORT_CLIE,@VSNU_RUCS_CLIE,@CSTI_PERS_SUNA,@CSCO_DOCU_SUNA,@CSNU_DOCU_SUNA,
    @CSST_AGEN_PERC,@CSST_RETE,@CSNO_AUXI,@CSNU_RUCS,
    @CSNO_RAZO_SOCI,@CSAP_PATE_AUXI,@CSAP_MATE_AUXI,@CSNO_NATU_AUX1,@CSNO_NATU_AUX2
                            
 End                            
 Close CU_TXMVTO_CNTB_Q46_1                            
 Deallocate CU_TXMVTO_CNTB_Q46_1                            
 


Select   

(Case When t1.TI_PERS_SUNA = '03' Then '02' Else '01' End) + '|'+
  
IsNull(T3.CO_SUNA,'') + '|' +  
  
Rtrim(IsNull(CONVERT( CHAR(10), T1.FE_DOCU, 103),'')) + '|' +  
  
IsNull(Substring(T1.NU_DOCU,1, IsNull(T3.NU_LONG_SERI,0) ),'') + '|' +  
  
IsNull(CASE T3.ST_SERI When 'S' Then Substring(T1.NU_DOCU,IsNull(T3.NU_LONG_SERI,0) + 2, IsNull(T3.NU_LONG,0) )  
                Else T1.NU_DOCU  
End,'') + '|' +  
  
IsNull(t1.TI_PERS_SUNA,'') + '|' +  
  
IsNull(t1.CO_DOCU_SUNA,'-') + '|' +
  
IsNull(t1.NU_DOCU_SUNA,'') + '|' +  
  
CASE When t1.TI_PERS_SUNA IN ('02','03') Then Substring(RTRIM(LTRIM(ISNULL(t1.NO_RAZO_SOCI,''))),1,40)  
     Else ''  
     End + '|' +  
  
CASE When t1.TI_PERS_SUNA IN ('01') Then RTRIM(LTRIM(ISNULL(t1.AP_PATE_AUXI,'')))  
     Else ''  
     End + '|' +  
  
CASE When t1.TI_PERS_SUNA IN ('01') Then RTRIM(LTRIM(ISNULL(t1.AP_MATE_AUXI,'')))  
     Else ''  
     End  + '|' +  
  
CASE When t1.TI_PERS_SUNA IN ('01') Then RTRIM(LTRIM(ISNULL(t1.NO_NATU_AUX1,'')))  
     Else ''  
     End  + '|' +  
  
CASE When t1.TI_PERS_SUNA IN ('01') Then RTRIM(LTRIM(ISNULL(t1.NO_NATU_AUX2,'')))  
     Else ''  
     End  + '|' +  
  
/*IsNull(CASE When T3.CO_SUNA In ( '07','08' ) Then '1'  
     Else ( CASE When t1.CO_MONE = @VSCO_MONE_NACI Then '1'  
            When t1.CO_MONE = @VSCO_MONE_DOLA Then '2'  
            Else '9'  
            End ) End,'')  + '|'+  
*/

(CASE When t1.CO_MONE = @VSCO_MONE_NACI Then '1'  
            When t1.CO_MONE = @VSCO_MONE_DOLA Then '2'  
            Else '9'  
            End) + '|'+
  
ISNULL(RTRIM(LTRIM(T1.CO_DEST)),'') + '|' +  
  
ISNULL(RTRIM(LTRIM(T1.NU_DEST)),'') + '|' +  

-- IsNull(RTRIM(LTRIM(STR( Abs( IsNull(T1.IM_AFEC_CNTB,0) + IsNull(T1.IM_INAF_CNTB,0) + IsNull(t1.IM_EXPO_CNTB,0)),10,2 ))),'') + '|' +  

CASE When T1.CO_MONE = @VSCO_MONE_NACI Then 
       RTRIM(LTRIM(STR( Abs(IsNull(T1.IM_AFEC_CNTB,0) + IsNull(T1.IM_INAF_CNTB,0) + IsNull(T1.IM_EXPO_CNTB,0) ),10,2)))
     Else
       RTRIM(LTRIM(STR( Abs(IsNull(T1.IM_AFEC_ORIG,0) + IsNull(T1.IM_INAF_ORIG,0) ),10,2)))
     End + '|' +

'0.00'+ '|'+  
  
--IsNull(RTRIM(LTRIM(STR(Abs(IsNull(t1.IM_IIGV_CNTB,0)),10,2))),'') + '|'+  
  
CASE When T1.CO_MONE = @VSCO_MONE_NACI Then 
       RTRIM(LTRIM(STR(Abs(IsNull(T1.IM_IIGV_CNTB,0)),10,2)))
     Else
       RTRIM(LTRIM(STR(Abs(IsNull(T1.IM_IIGV_ORIG,0)),10,2)))
     End + '|' +

'0.00'+ '|'+  
    
CASE When T1.ST_AFEC_PERC = 'S' Then '1'  
     Else '0'  
     End + '|' + 
CASE When T1.ST_AFEC_PERC = 'S' Then ISNULL(RTRIM(LTRIM(NullIf(T1.PO_PERC, '0.00'))),'')  
     Else ''  
     End + '|' +  
CASE When T1.ST_AFEC_PERC = 'S' Then ISNULL(RTRIM(LTRIM( T1.NU_SERI_PERC )),'')  
     Else ''  
     End + '|' +  

CASE When T1.ST_AFEC_PERC = 'S' Then RIGHT(ISNULL(RTRIM(LTRIM( T1.NU_CORR_PERC )),''),10)  
     Else ''  
     End + '|' +  

IsNull( T1.CO_SUNA_REFE, '') + '|' +  
  
IsNull(Substring(T1.NU_DOCU_REFE,1, IsNull(T5.NU_LONG_SERI,0) ) ,'') + '|' +  
  
IsNull(CASE When T5.ST_SERI = 'S' Then Substring(T1.NU_DOCU_REFE,IsNull(T5.NU_LONG_SERI,0) + 2, IsNull(T5.NU_LONG,0) )  
     When T5.ST_SERI = 'N' Then T1.NU_DOCU_REFE  
     Else ''  
     End,'') + '|' +  
  
Isnull(RTRIM(LTRIM(CONVERT( CHAR(10), T1.FE_DOCU_REFE, 103))),'') + '|' +  

CASE When T1.NU_DOCU_REFE is not Null Then

	CASE When T1.CO_MONE = @VSCO_MONE_NACI Then 
	       RTRIM(LTRIM(STR( Abs(IsNull(T1.IM_AFEC_CNTB,0) + IsNull(T1.IM_INAF_CNTB,0) + IsNull(T1.IM_EXPO_CNTB,0) ),10,2)))
	     Else
	       RTRIM(LTRIM(STR( Abs(IsNull(T1.IM_AFEC_ORIG,0) + IsNull(T1.IM_INAF_ORIG,0) ),10,2)))
	     End
     Else ''
     End  + '|' +

CASE When T1.NU_DOCU_REFE is not Null Then

	CASE When T1.CO_MONE = @VSCO_MONE_NACI Then 
	       RTRIM(LTRIM(STR(Abs(IsNull(T1.IM_IIGV_CNTB,0)),10,2)))
	     Else
	       RTRIM(LTRIM(STR(Abs(IsNull(T1.IM_IIGV_ORIG,0)),10,2)))
	     End
     Else ''
     End  + '|'

  
--IsNull(NullIf(RTRIM(LTRIM(STR(Abs(IsNull(t1.IM_REFE_BASE,0)),10,2))),'0.00'),'')+ '|'+    
  
--IsNull(NullIf(RTRIM(LTRIM(STR(Abs(IsNull(t1.IM_REFE_IIGV,0)),10,2))),'0.00'),'')+ '|'  


From #TWMVTO_APAG_0001 T1 LEFT OUTER JOIN TTDOCU_CNTB T5  
On T5.TI_DOCU = T1.TI_DOCU_REFE, 
TTDOCU_CNTB T3 
Where Not Exists ( Select tX.TI_DOCU  
   From TTDOCU_EXVE tX
   Where tX.CO_EMPR = @ISCO_EMPR
   And tX.TI_DOCU = T1.TI_DOCU ) 
And ( (@ISFI_0001 = 'A' And Abs(IsNull(T1.IM_IIGV_CNTB,0)) > 0) Or   
(@ISFI_0001 = 'I' And Abs(IsNull(T1.IM_IIGV_CNTB,0)) = 0) Or (@ISFI_0001 = 'T') )  
And T3.TI_DOCU = T1.TI_DOCU   
Order by T1.CO_CLIE, T1.TI_DOCU, T1.NU_DOCU  
  
           
Return                            
/*--------------------------------- Fin ------------------------------------*/              






GO
